"semver 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"tar 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "toml 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "toml 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libz-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-sys 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "openssl-sys 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libssh2-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-sys 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "openssl-sys 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libz-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-sys 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "openssl-sys 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "openssl-sys"
-version = "0.2.4"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libressl-pnacl-sys 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
[[package]]
name = "toml"
-version = "0.1.5"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
define CARGO_TARGET
cargo-$(1): $$(CARGO)
- "$$(CFG_RUSTC)" -v
+ "$$(CFG_RUSTC)" -V
$$(CARGO) build --target $(1) $$(OPT_FLAG) $$(ARGS)
test-unit-$(1): $$(CARGO)
else
probe_need CFG_RUSTC rustc
fi
- DEFAULT_BUILD=$("${CFG_RUSTC}" --version verbose | grep 'host: ' | sed 's/host: //')
+ DEFAULT_BUILD=$("${CFG_RUSTC}" -vV | grep 'host: ' | sed 's/host: //')
fi
valopt build "${DEFAULT_BUILD}" "GNUs ./configure syntax LLVM build triple"
#![feature(phase, macro_rules)]
-#![deny(unused)]
+#![deny(warnings)]
extern crate serialize;
#[phase(plugin, link)] extern crate log;
#![feature(macro_rules, phase)]
#![feature(default_type_params)]
-#![deny(bad_style)]
+#![deny(unused)]
+#![cfg_attr(test, deny(warnings))]
extern crate libc;
extern crate regex;
t.is_lib()
});
- Ok((Work::new(move |desc_tx: Sender<String>| {
+ let rustc_dep_info_loc = root.join(target.file_stem()).with_extension("d");
+ let dep_info_loc = fingerprint::dep_info_loc(cx, package, target, kind);
+
+ Ok((Work::new(move |desc_tx| {
let mut rustc = rustc;
// Only at runtime have we discovered what the extra -L and -l
human(format!("Could not compile `{}`.", name))
}));
+ try!(fs::rename(&rustc_dep_info_loc, &dep_info_loc));
+
Ok(())
}), kind))
}
if profile.get_opt_level() != 0 {
- cmd = cmd.arg("--opt-level").arg(profile.get_opt_level().to_string());
+ cmd = cmd.arg("-C").arg(format!("opt-level={}", profile.get_opt_level()));
}
if (target.is_bin() || target.is_staticlib()) && profile.get_lto() {
cmd = cmd.args(&["-C", "lto"]);
cmd = cmd.arg("--out-dir");
cmd = cmd.arg(cx.out_dir(pkg, kind, target));
- let dep_info_loc = fingerprint::dep_info_loc(cx, pkg, target, kind);
- cmd = cmd.arg("--dep-info").arg(dep_info_loc);
+ cmd = cmd.arg("--emit=dep-info,link");
if kind == Kind::Target {
fn opt(cmd: ProcessBuilder, key: &str, prefix: &str,
+2014-12-21
+ linux-i386 4dea04e278192c5409f43794a98f20a8f59df2d9
+ linux-x86_64 3e48c573d3c4d26591feb7bfe988174720f08374
+ macos-i386 dc3d498c0567af4a0820e91756dcfff8fde0efac
+ macos-x86_64 f301bd8c3c93a5c88698c69190e464af1525ac96
+ winnt-i386 5b6bc87e302d1ff6ac9b0576292eb7cbff2c3b83
+ winnt-x86_64 a8bb8d3a7ed3fc8caf4a33d6b9d2e43544877409
+
2014-12-20
linux-i386 1cccab5a6ac8e73472bf78cdce019cd1a60d4638
linux-x86_64 53c176fcda0a40fb77b901303c443de3dce3e58d
test bench_hello ... ",
COMPILING, p.url(), RUNNING))
.with_stderr(format!("\
-task '<main>' panicked at 'assertion failed: \
+thread '<main>' panicked at 'assertion failed: \
`(left == right) && (right == left)` (left: \
`hello`, right: `nope`)', src{sep}foo.rs:13
", sep = path::SEP))
output);
});
-#[cfg(not(windows))] // FIXME(#456)
test!(bench_dylib {
let p = project("foo")
.file("Cargo.toml", r#"
execs().with_status(0)
.with_stdout(format!("\
{compiling} bar v0.0.1 ({dir})
-{running} [..] --opt-level 3 [..]
+{running} [..] -C opt-level=3 [..]
{compiling} foo v0.0.1 ({dir})
-{running} [..] --opt-level 3 [..]
-{running} [..] --opt-level 3 [..]
-{running} [..] --opt-level 3 [..]
+{running} [..] -C opt-level=3 [..]
+{running} [..] -C opt-level=3 [..]
+{running} [..] -C opt-level=3 [..]
{running} [..]target[..]release[..]bench-[..]
running 1 test
-use std::io::{TcpListener, Listener, Acceptor, BufferedStream};
-use std::io::net::tcp::TcpAcceptor;
use std::collections::HashSet;
+use std::io::net::tcp::TcpAcceptor;
+use std::io::{TcpListener, Listener, Acceptor, BufferedStream};
+use std::thread::Thread;
use git2;
use support::{project, execs, ResultTest, UPDATING};
let mut a = listener.listen().unwrap();
let a2 = a.clone();
let _c = Closer { a: a2 };
- let (tx, rx) = channel();
fn headers<R: Buffer>(rdr: &mut R) -> HashSet<String> {
let valid = ["GET", "Authorization", "Accept", "User-Agent"];
.collect()
}
- spawn(move|| {
+ let t = Thread::spawn(move|| {
let mut s = BufferedStream::new(a.accept().unwrap());
let req = headers(&mut s);
s.write(b"\
"Accept: */*",
"User-Agent: git/1.0 (libgit2 0.21.0)",
].into_iter().map(|s| s.to_string()).collect());
-
- tx.send(());
});
let script = project("script")
",
addr = addr)));
- rx.recv();
+ t.join().ok().unwrap();
});
// Boy, sure would be nice to have a TLS implementation in rust!
let mut a = listener.listen().unwrap();
let a2 = a.clone();
let _c = Closer { a: a2 };
- let (tx, rx) = channel();
- spawn(move|| {
+ let t = Thread::spawn(move|| {
drop(a.accept().unwrap());
-
- tx.send(());
});
let p = project("foo")
"SSL error: [..]"
})));
- rx.recv();
+ t.join().ok().unwrap();
});
// Boy, sure would be nice to have an SSH implementation in rust!
let mut a = listener.listen().unwrap();
let a2 = a.clone();
let _c = Closer { a: a2 };
- let (tx, rx) = channel();
- spawn(move|| {
+ let t = Thread::spawn(move|| {
drop(a.accept().unwrap());
-
- tx.send(());
});
let p = project("foo")
[23] Failed to start SSH session: Failed getting banner
",
addr = addr)));
-
- rx.recv();
+ t.join().ok().unwrap();
});
-C metadata=[..] \
-C extra-filename=-[..] \
--out-dir {dir}{sep}target \
- --dep-info [..] \
+ --emit=dep-info,link \
-L {dir}{sep}target \
-L {dir}{sep}target{sep}deps`
",
execs().with_status(0));
});
-#[cfg(not(windows))]
test!(ignore_broken_symlinks {
+ // windows and symlinks don't currently agree that well
+ if cfg!(windows) { return }
+
let p = project("foo")
.file("Cargo.toml", basic_bin_manifest("foo").as_slice())
.file("src/foo.rs", main_file(r#""i am foo""#, &[]).as_slice())
execs().with_status(0).with_stdout(format!("\
{compiling} test v0.0.0 ({url})
{running} `rustc {dir}{sep}src{sep}main.rs --crate-name test --crate-type bin \
- --opt-level 3 \
+ -C opt-level=3 \
-C lto \
--cfg ndebug \
--out-dir {dir}{sep}target{sep}release \
- --dep-info [..] \
+ --emit=dep-info,link \
-L {dir}{sep}target{sep}release \
-L {dir}{sep}target{sep}release{sep}deps`
",
-C metadata=[..] \
-C extra-filename=-[..] \
--out-dir {dir}{sep}target \
- --dep-info [..] \
+ --emit=dep-info,link \
-L {dir}{sep}target \
-L {dir}{sep}target{sep}deps`
",
execs().with_status(0).with_stdout(format!("\
{compiling} test v0.0.0 ({url})
{running} `rustc {dir}{sep}src{sep}lib.rs --crate-name test --crate-type lib \
- --opt-level 3 \
+ -C opt-level=3 \
--cfg ndebug \
-C metadata=[..] \
-C extra-filename=-[..] \
--out-dir {dir}{sep}target{sep}release \
- --dep-info [..] \
+ --emit=dep-info,link \
-L {dir}{sep}target{sep}release \
-L {dir}{sep}target{sep}release{sep}deps`
",
{compiling} foo v0.0.0 ({url})
{running} `rustc {dir}{sep}foo{sep}src{sep}lib.rs --crate-name foo \
--crate-type dylib --crate-type rlib -C prefer-dynamic \
- --opt-level 3 \
+ -C opt-level=3 \
--cfg ndebug \
-C metadata=[..] \
-C extra-filename=-[..] \
--out-dir {dir}{sep}target{sep}release{sep}deps \
- --dep-info [..] \
+ --emit=dep-info,link \
-L {dir}{sep}target{sep}release{sep}deps \
-L {dir}{sep}target{sep}release{sep}deps`
{compiling} test v0.0.0 ({url})
{running} `rustc {dir}{sep}src{sep}lib.rs --crate-name test --crate-type lib \
- --opt-level 3 \
+ -C opt-level=3 \
--cfg ndebug \
-C metadata=[..] \
-C extra-filename=-[..] \
--out-dir {dir}{sep}target{sep}release \
- --dep-info [..] \
+ --emit=dep-info,link \
-L {dir}{sep}target{sep}release \
-L {dir}{sep}target{sep}release{sep}deps \
--extern foo={dir}{sep}target{sep}release{sep}deps/\
-C metadata=[..] \
-C extra-filename=-[..] \
--out-dir {dir}{sep}target \
- --dep-info [..] \
+ --emit=dep-info,link \
-L {dir}{sep}target \
-L {dir}{sep}target{sep}deps`
",
{running} `[..]a-[..]build-script-build[..]`
{running} `rustc [..]lib.rs --crate-name a --crate-type lib -g \
-C metadata=[..] -C extra-filename=-[..] \
- --out-dir [..]target[..]deps --dep-info [..]fingerprint[..]dep-lib-a \
+ --out-dir [..]target[..]deps --emit=dep-info,link \
-L [..]target[..]deps -L [..]target[..]deps`
{compiling} foo v0.5.0 (file://[..])
{running} `rustc build.rs --crate-name build-script-build --crate-type bin \
-C prefer-dynamic -g \
- --out-dir [..]build[..]foo-[..] --dep-info [..]fingerprint[..]dep-[..] \
+ --out-dir [..]build[..]foo-[..] --emit=dep-info,link \
-L [..]target -L [..]target[..]deps \
--extern a=[..]liba-[..].rlib`
{running} `[..]foo-[..]build-script-build[..]`
{running} `rustc [..]lib.rs --crate-name foo --crate-type lib -g \
-C metadata=[..] -C extra-filename=-[..] \
- --out-dir [..]target --dep-info [..]fingerprint[..]dep-lib-foo \
+ --out-dir [..]target --emit=dep-info,link \
-L [..]target -L [..]target[..]deps`
", compiling = COMPILING, running = RUNNING).as_slice()));
});
Failed to run custom build command for `foo v0.5.0 ({dir})`
Process didn't exit successfully: `{}` (status=101)\n\
--- stderr\n\
-task '<main>' panicked at 'nope', {filename}:2\n\
+thread '<main>' panicked at 'nope', {filename}:2\n\
\n\
", build.bin("foo").display(), filename = format!("src{}foo.rs", path::SEP),
dir = p.url())));
Failed to run custom build command for `foo v0.5.0 ({dir})`
Process didn't exit successfully: `{}` (status=101)\n\
--- stderr\n\
-task '<main>' panicked at 'nope', {filename}:2\n\
+thread '<main>' panicked at 'nope', {filename}:2\n\
\n\
", build2.bin("bar").display(), filename = format!("src{}bar.rs", path::SEP),
dir = p.url())));
-// Currently the only cross compilers available via nightlies are on linux/osx,
-// so we can only run these tests on those platforms
-#![cfg(any(target_os = "linux", target_os = "macos"))]
-
use std::os;
use std::path;
}
fn disabled() -> bool {
+ // First, disable if ./configure requested so
match os::getenv("CFG_DISABLE_CROSS_TESTS") {
- Some(ref s) if s.as_slice() == "1" => true,
- _ => false,
+ Some(ref s) if s.as_slice() == "1" => return true,
+ _ => {}
}
+
+ // Right now the windows bots cannot cross compile due to the mingw setup,
+ // so we disable ourselves on all but macos/linux setups where the rustc
+ // install script ensures we have both architectures
+ return !cfg!(target_os = "macos") && !cfg!(target_os = "linux");
}
fn alternate() -> &'static str {
{compiling} foo v0.5.0 ({url})
{running} `rustc src/foo.rs --crate-name foo --crate-type bin -g \
--out-dir {dir}{sep}target{sep}{target} \
- --dep-info [..] \
+ --emit=dep-info,link \
--target {target} \
-C ar=my-ar-tool -C linker=my-linker-tool \
-L {dir}{sep}target{sep}{target} \
execs().with_status(0).with_stdout(format!("\
{compiling} test v0.0.0 ({url})
{running} `rustc {dir}{sep}src{sep}lib.rs --crate-name test --crate-type lib \
- --opt-level 1 \
+ -C opt-level=1 \
--cfg ndebug \
-C metadata=[..] \
-C extra-filename=-[..] \
-C rpath \
--out-dir {dir}{sep}target \
- --dep-info [..] \
+ --emit=dep-info,link \
-L {dir}{sep}target \
-L {dir}{sep}target{sep}deps`
",
{compiling} foo v0.0.0 ({url})
{running} `rustc {dir}{sep}foo{sep}src{sep}lib.rs --crate-name foo \
--crate-type dylib --crate-type rlib -C prefer-dynamic \
- --opt-level 1 \
+ -C opt-level=1 \
-g \
-C metadata=[..] \
-C extra-filename=-[..] \
--out-dir {dir}{sep}target{sep}release{sep}deps \
- --dep-info [..] \
+ --emit=dep-info,link \
-L {dir}{sep}target{sep}release{sep}deps \
-L {dir}{sep}target{sep}release{sep}deps`
{compiling} test v0.0.0 ({url})
{running} `rustc {dir}{sep}src{sep}lib.rs --crate-name test --crate-type lib \
- --opt-level 1 \
+ -C opt-level=1 \
-g \
-C metadata=[..] \
-C extra-filename=-[..] \
--out-dir {dir}{sep}target{sep}release \
- --dep-info [..] \
+ --emit=dep-info,link \
-L {dir}{sep}target{sep}release \
-L {dir}{sep}target{sep}release{sep}deps \
--extern foo={dir}{sep}target{sep}release{sep}deps/\
failures:
---- test_hello stdout ----
-<tab>task 'test_hello' panicked at 'assertion failed: \
+<tab>thread 'test_hello' panicked at 'assertion failed: \
`(left == right) && (right == left)` (left: \
`hello`, right: `nope`)', src{sep}foo.rs:12
COMPILING, p.url(), RUNNING,
sep = path::SEP))
.with_stderr(format!("\
-task '<main>' panicked at 'Some tests failed', [..]
+thread '<main>' panicked at 'Some tests failed', [..]
"))
.with_status(101));
});
#![feature(macro_rules)]
#![feature(phase)]
+#![deny(warnings)]
extern crate cargo;
extern crate flate2;